Istio RequestAuthentication

개요

Istio PeerAuthentication는 서비스 간 인증을 다뤘는데, 사실 구체적으로 들어가면 그냥 통신 간 암호화에 대한 설정이 주를 이룰 뿐이다.
반면 RequestAuthentication은 TLS가 아니라 실제 통신 내용에서 신원 인증을 하는 리소스이다.
기본적으로 JWT의 값을 기반으로 인증을 수행하며, 인증되지 않는다면 401에러를 반환시킨다.
주의할 점으로, JWT를 안 가져온 요청에 대해서는 익명 요청으로 간주하고 에러를 반환하지 않는다는 것.
익명 요청을 처리하는 것은 인가 단계에서 이뤄져야 한다.

이 놈도 워크로드 - 네임스페이스 - 전역 범위 정책 순을 따른다.

양식 작성법

apiVersion: security.istio.io/v1
kind: RequestAuthentication
metadata:
  name: httpbin
  namespace: foo
spec:
  selector:
    matchLabels:
      app: httpbin
  jwtRules:
  - issuer: "issuer-foo"
    jwksUri: https://example.com/.well-known/jwks.json

selector말고 targetRef를 통해 리소스를 명시적으로 지정하는 것도 가능하다.
jwtRules 쪽에 jwt 토큰에 들어갈 각종 설정들을 넣는다.
어디까지나 이 리소스는 인증을 위한 리소스임을 명심하자.
여기 설정에는 그냥 해당 jwt 토큰이 신뢰될 만한지 검증하는 내용만 들어간다.

간단하게 필드를 정리하자면,

관련 문서

이름 noteType created
5W - 이스티오 mTLS와 SPIFFE published 2025-05-11
5W - 이스티오 JWT 인증 published 2025-05-11
5W - 이스티오 인가 정책 설정 published 2025-05-11
E-istio-csr 사용 실습 topic/explain 2025-06-09
E-앰비언트 모드에서 메시 기능 활용 topic/explain 2025-06-07

참고